package com.zhihesj.anan.GicApi.controller;

import java.util.List;
import java.util.Map;

import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpUtil;
import com.zhihesj.anan.message.Message;
import org.apache.commons.logging.LogFactory;
import org.apache.http.entity.ContentType;

import com.alibaba.fastjson.JSONObject;
import org.springframework.web.bind.annotation.*;


@RestController
@RequestMapping("/Gic")
public class GicController  {

    protected static final String GIC_API = "http://hope.demogic.com/open-api";
    protected static final String GIC_APPKEY = "E1fyQtx2";
    protected static final String GIC_APPSECRET = "b47ac9efb56845559ca0258dd69ae7f9";
    protected static final String WEIXIN_ID = "gh_91ef3b514deb";

    /**
     * gic入口方法
     * @return
     */
    @PostMapping("/p")
    public Message p(@RequestBody Map<String,Object> map){
        String method =(String) map.get("method");
        if (method.isEmpty()) method="";
        String str="";
        // 3.2新增零售单
//        if ("createOrderByPOS".equals(method)) {
//            str=createOrderByPOS(map);
//        }
//        //1.7新增会员
//        else if ("addPosMember".equals(method)){
//            str=editMember(map);
//        }
//        //1.14更新会员
//        else if ("updateMemberInfo".equals(method)){
//            str=editMember(map);
//        }
//        //1.3查询会员
//        else if ("memberInfoQuery".equals(method)){
//            str=memberInfoQuery(map);
//        }
//        //1.15积分更改
//        else if("coverMemberIntegral".equals(method)){
//            str=editMember(map);
//        }
        return Message.success(JSONObject.parseObject(str));
    }

    /**
     * 1.3查询会员
     * @return
     */
    @PostMapping("/memberInfoQuery")
    public String memberInfoQuery(@RequestBody Map<String,Object> map){
        String mobile =(String) map.get("mobile");
        String cardName =(String) map.get("cardName");
        String version =(String) map.get("version");
        if (mobile.isEmpty()) mobile="";
        if (version.isEmpty()) version="1";
        String token= getToken();
        Map<String,Object> map1=map;
        map1.put("token", token);
        map1.put("entMicroSignal", WEIXIN_ID);
        String resp = HttpUtil.post(GIC_API + "/memberInfoQuery.json", map1);
        System.out.println(resp);
        return resp;
    }

    /**
     * 更改会员方法
     * 1.7新增会员 1.14更新会员 1.15会员积分更改
     * @return
     */
//    @PostMapping("/editMember")
//    public String editMember(@RequestBody Map<String,Object> map){
//        String GicLog_id = (String) map.get("GicLog_id");
//        if (GicLog_id.isEmpty()){
//            return "";
//        }
//        String token= getToken();
//        Object[]o ={};
//        String sql="select * from gic_log where id="+GicLog_id;
//        List list = Connect.exesql_bjson("orcl_dbcenter",sql,o);
//        Map msg = null;
//        String resp ="";
//        JSONObject jsonObject;
//        for (int i=0;i<list.size();i++){
//            msg = (Map) list.get(i);
//            String json=(String)msg.get("json");
//            JSONObject jsonObject1=JSONObject.parseObject(json);
//            HttpClient httpClient = new DefaultHttpClient();
//            HttpClient.Params params = HttpClient.Params.custom()
//                    .add("token", token)
//                    .add("entMicroSignal", WEIXIN_ID)
//                    .add(jsonObject1)
//                    .setContentType(ContentType.APPLICATION_FORM_URLENCODED).build();
//            resp = httpClient.post(GIC_API + "/"+method+".json", params);
//            System.out.println(resp);
//        }
//        jsonObject=JSONObject.parseObject(resp);
//        bean2String(jsonObject);
//        return resp;
//    }

    /**
     * 3.2新增零售单
     * @return
     */
//    public String createOrderByPOS(){
//        String GicLog_id = getRequest().getParameter("GicLog_id");
//        if (GicLog_id.isEmpty()) return "";
//        String token= getToken();
//        Object[]o ={};
////		String intoSql= "insert into gic_log(id,token,json,create_date,syn) "
////				+ "select id,token,json,create_date,syn from  gic_log@test39 where id="+GicLog_id;
////		Connect.exesql_bjson("orcl_dbcenter",intoSql,o);
//        String sql="select * from gic_log where id="+GicLog_id;
//        List list = Connect.exesql_bjson("orcl_dbcenter",sql,o);
//        Map msg = null;
//        String resp ="";
//        for (int i=0;i<list.size();i++){
//            msg = (Map) list.get(i);
//            String json=(String)msg.get("json");
//            HttpClient httpClient = new DefaultHttpClient();
//            HttpClient.Params params = HttpClient.Params.custom()
//                    .add("token", token)
//                    .add("entMicroSignal", WEIXIN_ID)
//                    .add("order",json)
//                    .setContentType(ContentType.APPLICATION_FORM_URLENCODED).build();
//            resp = httpClient.post(GIC_API + "/createOrderByPOS.json", params);
//            System.out.println(resp);
//            JSONObject jsonObject=JSONObject.parseObject(resp);
//            bean2String(jsonObject);
//        }
//        return resp;
//    }

    public String getToken(){
        String token="";
        Object[]o ={};
        String sql="select max(token) token from (select id,token from gic_token@test39 a "
                + "where a.creationdate >sysdate-55/(24*60) order by id desc) where rownum=1";
//        List list = Connect.exesql_bjson("orcl_dbcenter",sql,o);
//        if (list.size()>0) {
//            Map map=(Map)list.get(0);
//            token = (String)map.get("token");
//            if (token==null) {
//                HttpClient httpClient = new DefaultHttpClient();
//                HttpClient.Params params = HttpClient.Params.custom()
//                        .add("appKey", GIC_APPKEY)
//                        .add("appSecret", GIC_APPSECRET)
//                        .setContentType(ContentType.APPLICATION_FORM_URLENCODED).build();
//                String resp = httpClient.post(GIC_API + "/user/getToken.json", params);
//                System.out.println(token);
//                token = JSONObject.parseObject(JSONObject.parseObject(resp).getString("getToken_response")).getString("token");
//                sql="insert into gic_token@test39(id,token,creationdate) "
//                        + "values(get_sequences@test39('GIC_TOKEN'),'"+token+"',sysdate)";
//                Connect.exesql_bjson("orcl_dbcenter",sql,o);
//            }
//        }
        return token;
    }









}
